import pandas as pd
import os
target_file = 'eeg_data_exc.csv'

script_dir = os.path.dirname(os.path.abspath(__file__))
# 将当前工作目录切换到脚本所在目录
os.chdir(script_dir)



# 读取数据，假设你的文件名为'eeg_data.csv'
df = pd.read_csv('eeg_data_exc.csv')


# 查看数据前几行和基本信息
print("数据前几行:   ", df.head())
print("基本信息:   ", df.info())


# 第一步：去除完全重复的行
df_step1 = df.drop_duplicates()
print(f"第一步去重后: {len(df_step1)} 行")

# 第二步：基于除时间戳外的其他字段去重，保留最早的记录
# 这样可以去除同一时刻多次记录的相同数据
data_columns = ['attention', 'meditation', 'rawValue', 'delta', 'theta', 'lowAlpha', 'highAlpha', 'lowBeta', 'highBeta', 'lowGamma', 'midGamma', 'poorSignal', 'blinkStrength']
df_step2 = df_step1.drop_duplicates(subset=data_columns, keep='first')
print(f"第二步去重后: {len(df_step2)} 行")

# 第三步：按时间戳排序
df_step2 = df_step2.sort_values('timestamp')

# 第四步：更智能的去重 - 基于核心脑电波数据去重
# 保留attention, meditation和主要脑电波数据不同的记录
core_columns = ['attention', 'meditation', 'delta', 'theta', 'lowAlpha', 'highAlpha', 'lowBeta', 'highBeta', 'lowGamma', 'midGamma']
df_cleaned = df_step2.drop_duplicates(subset=core_columns, keep='first')

# 查看最终去重后的数据信息
print(f"原始数据行数: {len(df)}")
print(f"最终去重后数据行数: {len(df_cleaned)}")
print(f"总共去除了 {len(df) - len(df_cleaned)} 行重复数据")

# 保存清洗后的数据
cleaned_file = 'eeg_data_cleaned.csv'
df_cleaned.to_csv(cleaned_file, index=False)
print(f"清洗后的数据已保存到: {cleaned_file}")

# 显示清洗后数据的前几行
print("\n清洗后数据前5行:")
print(df_cleaned.head())